home *** CD-ROM | disk | FTP | other *** search
/ Tech Arsenal 1 / Tech Arsenal (Arsenal Computer).ISO / tek-01 / wcomm111.zip / TC.ZIP / WARPCOMM.H < prev    next >
C/C++ Source or Header  |  1991-02-02  |  3KB  |  66 lines

  1. //          Warp Communications Library
  2. //          Copyright (C) 1991 Trevor Bell, All Rights Reserved
  3.  
  4. #define MK_INT(high, low) ((((unsigned int)(high)) << 8) + ((unsigned int)(low)))
  5.  
  6. void isr(unsigned int port);
  7. void set_baudrate(unsigned int port, unsigned int baud_rate);
  8. int char_waiting(unsigned int port);
  9. void send_modem_string(unsigned int port, char *s);
  10. void set_rts(unsigned int port, unsigned int i);
  11. void set_dtr(unsigned int port, unsigned int i);
  12. void clear_receive_buffer(unsigned int port);
  13. void clear_xmit_buffer(unsigned int port);
  14. void com_open(unsigned int port, unsigned int baud_rate, unsigned int irq,
  15.     unsigned int base_address, unsigned int r_size, unsigned int x_size);
  16. void com_close(unsigned int port);
  17. void com_out_buf(unsigned int port, unsigned char *s, unsigned int length);
  18. void com_get_buf(unsigned int port, unsigned char *s, unsigned int length);
  19. void com_out_char(unsigned int port, char ch1);
  20. void com_out_uchar(unsigned int port, unsigned char ch1);
  21. void com_out_char_str(unsigned int port, char *s);
  22. char com_get_char(unsigned int port);
  23. unsigned char com_get_uchar(unsigned int port);
  24. unsigned char read_ier(unsigned int port);
  25. unsigned char read_lsr(unsigned int port);
  26. unsigned char read_msr(unsigned int port);
  27. unsigned char read_lcr(unsigned int port);
  28. unsigned char read_mcr(unsigned int port);
  29.  
  30. void interrupt far normal_async_isr0();
  31. void interrupt far normal_async_isr1();
  32. void interrupt far normal_async_isr2();
  33. void interrupt far normal_async_isr3();
  34. void interrupt far normal_async_isr4();
  35. void interrupt far normal_async_isr5();
  36. void interrupt far normal_async_isr6();
  37. void interrupt far normal_async_isr7();
  38.  
  39. struct COM_port {
  40.     volatile unsigned char *receive_buffer;
  41.     volatile unsigned char *xmit_buffer;
  42.  
  43.     unsigned int receive_buffer_size;
  44.     unsigned int xmit_buffer_size;
  45.  
  46.     volatile unsigned int xmit_tail, xmit_head;
  47.     volatile unsigned int receive_tail, receive_head;
  48.  
  49.     int CD;                     // carrier detect
  50.     unsigned int async_irq;     // interrupt request #
  51.     unsigned int com_baudrate;  // current baudrate
  52.  
  53.     unsigned int
  54.     base,       // base register
  55.     ier_reg,    // interrupt enable register
  56.     iir_reg,    // interrupt identification register
  57.     lcr_reg,    // line control register
  58.     mcr_reg,    // modem control register
  59.     lsr_reg,    // line status register
  60.     msr_reg;    // modem status register
  61.  
  62.     void interrupt (far *old_async)();
  63. };
  64.  
  65. extern struct COM_port remote[8];
  66.